
#ifndef P2P_REACTOR_HPP
#define P2P_REACTOR_HPP
#include <memory>
#include <vector>

typedef unsigned char byte;
typedef std::vector<byte> bytes;
class Host;
class Peer;

class Reactor 
{
public:
    virtual void setHost(Host*) = 0;
    virtual ~Reactor(){}
    virtual std::unique_ptr<std::vector<byte>> getChannels() = 0;
    virtual void addPeer(Peer const & peer) = 0;
    virtual void removePeer(Peer const & peer) = 0;
    virtual void receive(byte chID, Peer const &peer, bytes const& data) = 0;
};

#endif // !P2P_REACTOR_HPP
